package material

import (
	"gq_volunteer_platform/bean"
	"gq_volunteer_platform/model/admin"
	"gq_volunteer_platform/model/material"

	"github.com/gin-gonic/gin"
)

func List(c *gin.Context) {
	var adm admin.Admin
	if err := adm.Get(c); err != nil {
		bean.Log.Error(err)
		c.String(500, err.Error())
		return
	}

	var req struct {
		Page  int    `binding:"required,gte=1"`
		Limit int    `binding:"required,gte=1"`
		Name  string `binding:"max=255"`
	}

	if err := c.ShouldBindQuery(&req); err != nil {
		bean.Log.Warning(err.Error())
		c.String(400, err.Error())
		return
	}

	var offset = (req.Page - 1) * req.Limit

	// 查询
	var count int64
	var list []material.Material

	var tx = bean.MysqlDb.Model(&material.Material{})

	// tx.Where("`organization_id`=?", adm.OrganizationId)

	if req.Name != "" {
		tx = tx.Where("`name` like ?", "%"+req.Name+"%")
	}

	// 查询总数
	if err := tx.Count(&count).Error; err != nil {
		bean.Log.Error(err)
		c.String(500, err.Error())
		return
	}

	// 查询列表
	if err := tx.Limit(req.Limit).Offset(offset).Order("`id` DESC").Find(&list).Error; err != nil {
		bean.Log.Error(err)
		c.String(500, err.Error())
		return
	}

	c.PureJSON(200, gin.H{
		"count": count,
		"list":  list,
	})
}

// 添加+修改素材信息
// func Edit(c *gin.Context) {
// 	// 用户输入信息
// 	var req struct {
// 		ID   uint   `binding:"max=10000000"`
// 		Name string `binding:"max=255"`
// 		Path string `binding:"max=255"`
// 		Note string `binding:"max=255"`
// 		Size uint   `binding:"max=255"`
// 		Type string `binding:"max=255"`
// 	}

// 	if err := c.ShouldBindJSON(&req); err != nil {
// 		bean.Log.Warning(err)
// 		c.String(400, err.Error())
// 		return
// 	}

// 	if req.ID == 0 && req.Password == "" {
// 		bean.Log.Error("密码不能为空")
// 		c.String(400, "密码不能为空")
// 		return
// 	}

// 	// 验证组织是否存在 预防出现管理员不显示的情况
// 	var org organization.Organization
// 	if err := bean.MysqlDb.Where("`id`=?", req.OrganizationId).First(&org).Error; err != nil {
// 		bean.Log.Warning(err)
// 		c.String(400, fmt.Sprintf("组织不存在id:%d", req.ID))
// 		return
// 	}

// 	var one admin.Admin
// 	one.ID = req.ID
// 	one.Name = req.Name
// 	one.Mobile = req.Mobile
// 	one.RoleID = req.RoleID
// 	one.Role = req.Role
// 	one.OrganizationId = req.OrganizationId
// 	one.Password = req.Password

// 	if one.Password != "" {
// 		if err := one.PasswordMd5(); err != nil {
// 			bean.Log.Error(err)
// 			c.String(500, err.Error())
// 			return
// 		}

// 		// 重置token
// 		if err := one.NewToken(); err != nil {
// 			bean.Log.Error(err)
// 			c.String(500, err.Error())
// 			return
// 		}
// 	}

// 	if req.ID == 0 {
// 		if err := bean.MysqlDb.Save(&one).Error; err != nil {
// 			bean.Log.Error(err)
// 			c.String(500, err.Error())
// 			return
// 		}
// 	} else {
// 		if err := bean.MysqlDb.Updates(&one).Error; err != nil {
// 			bean.Log.Error(err)
// 			c.String(500, err.Error())
// 			return
// 		}
// 	}

// 	c.String(200, "ok")
// }
